home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / wsc4vb24 / module32.bas < prev    next >
BASIC Source File  |  1999-06-01  |  6KB  |  180 lines

  1. '
  2. ' MODULE32.BAS [WSC4VB Ver 2.4; VBA Declarations]
  3. ' For EXCEL97, ACCESS97, and WORD97.
  4. '
  5. ' Create a button in your VBA application. The default name will be "CommandButton1",
  6. ' and the VBA code will contain code that looks like
  7. '
  8. '   Private Sub CommandButton1_Click()
  9. '
  10. '    End Sub
  11. ' Replace the generated code with this entire module. Connect port COM1 to a modem. 
  12. ' When executed, this module will transmit an "AT" to the modem. The modem should 
  13. ' respond with "OK".
  14. '
  15.  
  16. Private Declare Function SioBaud Lib "WSC32.DLL" (ByVal Port As Long, ByVal BaudCode As Long) As Long
  17. Private Declare Function SioBrkSig Lib "WSC32.DLL" (ByVal Port As Long, ByVal Cmd As Long) As Long
  18. Private Declare Function SioCTS Lib "WSC32.DLL" (ByVal Port As Long) As Long
  19. Private Declare Function SioDCD Lib "WSC32.DLL" (ByVal Port As Long) As Long
  20. Private Declare Function SioDone Lib "WSC32.DLL" (ByVal Port As Long) As Long
  21. Private Declare Function SioDSR Lib "WSC32.DLL" (ByVal Port As Long) As Long
  22. Private Declare Function SioDTR Lib "WSC32.DLL" (ByVal Port As Long, ByVal Char As Long) As Long
  23. Private Declare Function SioEvent Lib "WSC32.DLL" (ByVal Port As Long, ByVal Mask As Long)
  24. Private Declare Function SioFlow Lib "WSC32.DLL" (ByVal Port As Long, ByVal Code As Long) As Long
  25. Private Declare Function SioGetc Lib "WSC32.DLL" (ByVal Port As Long) As Long
  26. Private Declare Function SioGets Lib "WSC32.DLL" (ByVal Port As Long, ByVal Buffer As String, ByVal StringSize As Long) As Long
  27. Private Declare Function SioInfo Lib "WSC32.DLL" (ByVal Cmd As Long) As Long
  28. Private Declare Function SioParms Lib "WSC32.DLL" (ByVal Port As Long, ByVal Code1 As Long, ByVal Code2 As Long, ByVal Code3 As Long) As Long
  29. Private Declare Function SioPutc Lib "WSC32.DLL" (ByVal Port As Long, ByVal Char As Long) As Long
  30. Private Declare Function SioPuts Lib "WSC32.DLL" (ByVal Port As Long, ByVal Buffer As String, ByVal Size As Long) As Long
  31. Private Declare Function SioRead Lib "WSC32.DLL" (ByVal Port As Long, ByVal Reg) As Long
  32. Private Declare Function SioReset Lib "WSC32.DLL" (ByVal Port As Long, ByVal RxQueSize As Long, ByVal TxQueSize As Long) As Long
  33. Private Declare Function SioRI Lib "WSC32.DLL" (ByVal Port As Long) As Long
  34. Private Declare Function SioRTS Lib "WSC32.DLL" (ByVal Port As Long, ByVal Char As Long) As Long
  35. Private Declare Function SioRxClear Lib "WSC32.DLL" (ByVal Port As Long) As Long
  36. Private Declare Function SioRxQue Lib "WSC32.DLL" (ByVal Port As Long) As Long
  37. Private Declare Function SioStatus Lib "WSC32.DLL" (ByVal Port As Long, ByVal Mask As Long) As Long
  38. Private Declare Function SioTimer Lib "WSC32.DLL" () As Long
  39. Private Declare Function SioTxClear Lib "WSC32.DLL" (ByVal Port As Long) As Long
  40. Private Declare Function SioTxQue Lib "WSC32.DLL" (ByVal Port As Long) As Long
  41. Private Declare Function SioUnGetc Lib "WSC32.DLL" (ByVal Port As Long, ByVal Char As Long) As Long
  42. Private Declare Function SioWinError Lib "WSC32.DLL" (ByVal Buffer As String, ByVal Size As Long) As Long
  43.  
  44. Rem COM port codes
  45.  
  46.  Private Const COM1 = 0
  47.  Private Const COM2 = 1
  48.  Private Const COM3 = 2
  49.  Private Const COM4 = 3
  50.  Private Const COM5 = 4
  51.  Private Const COM6 = 5
  52.  Private Const COM7 = 6
  53.  Private Const COM8 = 7
  54.  Private Const COM9 = 8
  55.  Private Const COM10 = 9
  56.  Private Const COM11 = 10
  57.  Private Const COM12 = 11
  58.  Private Const COM13 = 12
  59.  Private Const COM14 = 13
  60.  Private Const COM15 = 14
  61.  Private Const COM16 = 15
  62.  Private Const COM17 = 16
  63.  Private Const COM18 = 17
  64.  Private Const COM19 = 18
  65.  Private Const COM20 = 19
  66.  
  67. Rem Parity Codes
  68.  
  69. Private Const NoParity = 0
  70. Private Const OddParity = 1
  71. Private Const EvenParity = 2
  72. Private Const MarkParity = 3
  73. Private Const SpaceParity = 4
  74.  
  75. Rem Stop Bit Codes
  76.  
  77. Private Const OneStopBit  = 0
  78. Private Const One5StopBit = 1
  79. Private Const TwoStopBits = 2
  80.  
  81. Rem Word Length Codes
  82.  
  83. Private Const WordLength5 = 5
  84. Private Const WordLength6 = 6
  85. Private Const WordLength7 = 7
  86. Private Const WordLength8 = 8
  87.  
  88. Rem baud codes
  89.  
  90. Private Const Baud110 = 0
  91. Private Const Baud300 = 1
  92. Private Const Baud1200 = 2
  93. Private Const Baud2400 = 3
  94. Private Const Baud4800 = 4
  95. Private Const Baud9600 = 5
  96. Private Const Baud19200 = 6
  97. Private Const Baud38400 = 7
  98. Private Const Baud57600 = 8
  99. Private Const Baud115200 = 9
  100.  
  101. Rem SioGetError Masks
  102.  
  103. Private Const WSC_RXOVER = &H1
  104. Private Const WSC_OVERRUN = &H2
  105. Private Const WSC_PARITY = &H4
  106. Private Const WSC_FRAME = &H8
  107. Private Const WSC_BREAK = &H10
  108. Private Const WSC_TXFULL = &H100
  109.  
  110. Rem Command codes
  111.  
  112. Private Const ASSERT_BREAK = 65
  113. Private Const CANCEL_BREAK = 67
  114. Private Const DETECT_BREAK = 68
  115.  
  116. Private Const SET_LINE = 83
  117. Private Const CLEAR_LINE = 67
  118. Private Const READ_LINE = 82
  119.  
  120. Rem Return codes
  121.  
  122. Private Const IE_BADID = -1
  123. Private Const IE_OPEN = -2
  124. Private Const IE_NOPEN = -3
  125. Private Const IE_MEMORY = -4
  126. Private Const IE_DEFAULT = -5
  127. Private Const IE_HARDWARE = -10
  128. Private Const IE_BYTESIZE = -11
  129. Private Const IE_BAUDRATE = -12
  130. Private Const WSC_NO_DATA = -100
  131. Private Const WSC_RANGE = -101
  132. Private Const WSC_ABORTED = -102
  133. Private Const WSC_WIN32ERR = -103
  134.  
  135. Private Sub Sleep(ByVal MilliSec As Long)
  136. Dim Time As Long
  137. Time = SioTimer() + MilliSec
  138. While SioTimer() < Time
  139. Wend
  140. End Sub
  141.  
  142. Private Sub CommandButton1_Click()
  143. Dim Code As Long
  144. Dim S As String
  145. Dim NL As String
  146. Dim X As String * 32
  147. Dim ThePort As Long
  148. ' begin
  149. ThePort = COM1
  150. NL = Chr$(13) + Chr$(10)
  151. ' open port
  152. Code = SioReset(ThePort, 128, 128)
  153. If Code < 0 Then
  154.   MsgBox "Error " + Str$(Code), , "SioReset fails"
  155.   Exit Sub
  156. End If
  157. Code = SioBaud(ThePort, 19200)
  158. ' set DTR & RTS when talking to modem
  159. Code = SioDTR(ThePort, Asc("S"))
  160. Code = SioRTS(ThePort, Asc("S"))
  161. ' transmit AT command (should delay between each character)
  162. Code = SioPutc(ThePort, Asc("A"))
  163. Call Sleep(20)
  164. Code = SioPutc(ThePort, Asc("T"))
  165. Call Sleep(20)
  166. Code = SioPutc(ThePort, 13)
  167. ' wait for response
  168. Call Sleep(250)
  169. ' get response (expecting "OK")
  170. Code = SioGets(ThePort, X, 32)
  171. If Code > 0 Then
  172.   MsgBox "Transmitted 'AT', and got " + NL + Left$(X,Code) + NL
  173. Else
  174.   MsgBox "Transmitted 'AT', and got no response."
  175. End If
  176. Code = SioDone(ThePort)
  177. End Sub
  178.